#pragma once
#include "Graph.h"
#include "Grapher.h"

struct queue_node{
	static queue_node newQN(double cost, node* n){
		queue_node qn = {cost, 0, n};
		return qn;
	}
	static queue_node newQN(double cost, double path, node* n){
		queue_node qn = {cost, path, n};
		return qn;
	}
	double cost;
	double pathCost;
	node* graph_node;
};

class CompareQueueNode {
    public:
    bool operator()(queue_node& q1, queue_node& q2) // Returns true if t1 is earlier than t2
    {
		if(q1.cost > q2.cost) return true;
		return false;
    }
};

#define PENTALTY_1 4.0
#define PENTALTY_2 1.0
#define PENTALTY_3 3.0